// 引入 axios
import axios from 'axios'

export default {
  namespaced: true,
  state: () => ({
    // token: localStorage.getItem('token')
    token: '',
    userInfo: {}
  }),
  mutations: {
    updateToken (state, token) {
      state.token = token
      // 存入 localStorage
      // localStorage.setItem('token', token)
    },
    updateUserInfo (state, userInfo) {
      state.userInfo = userInfo
    }
  },
  actions: {
    // 所有的 actions 第一个参数都是 context
    async getUserInfo (context) {
      // console.log(context.state.token)
      // console.log(this) // this 不是 Vue 的实例对象, 所以无法调用 Vue 原型上的 $http 方法
      // this.$http.get('/my/userinfo')
      // get 第一个参数是 url
      // 第二个参数是 config 配置对象
      // 配置对象中有一个设置请求头的属性: headers
      const { data: res } = await axios.get('/my/userinfo')

      // console.log(res.data)
      context.commit('updateUserInfo', res.data)
    }
  },
  getters: {}
}
